{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Scalable Batch GP Classification in 1D (w/ SVGP)\n",
    "\n",
    "This example shows how to use grid interpolation based variational classification with an `AbstractVariationalGP` using a `VariationalStrategy` module while learning the inducing point locations.\n",
    "\n",
    "\n",
    "**Note:** The performance of this notebook is substantially improved by using a GPU and casting your tensors with `.cuda()`. See our other GPU example notebooks for how to do this."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/home/gpleiss/anaconda3/envs/gpytorch/lib/python3.7/site-packages/matplotlib/__init__.py:999: UserWarning: Duplicate key in file \"/home/gpleiss/.dotfiles/matplotlib/matplotlibrc\", line #57\n",
      "  (fname, cnt))\n"
     ]
    }
   ],
   "source": [
    "import math\n",
    "import torch\n",
    "import gpytorch\n",
    "from matplotlib import pyplot as plt\n",
    "from math import exp\n",
    "\n",
    "%matplotlib inline\n",
    "%load_ext autoreload\n",
    "%autoreload 2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "train_x = torch.linspace(0, 1, 260).unsqueeze(-1)\n",
    "train_y_cos = torch.cos(train_x * (2 * math.pi)).squeeze() + 0.1 * torch.randn(260)\n",
    "train_y_sin = torch.sin(train_x * (2 * math.pi)).squeeze() + 0.1 * torch.randn(260)\n",
    "\n",
    "# Make train_x (2 x 260 x 1) and train_y (2 x 260)\n",
    "train_x = torch.cat([train_x, train_x], dim=1).transpose(-2, 1).unsqueeze(-1)\n",
    "train_y = torch.cat([train_y_cos.unsqueeze(-1), train_y_sin.unsqueeze(-1)], dim=1).transpose(-2, -1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "from gpytorch.models import AbstractVariationalGP\n",
    "from gpytorch.variational import CholeskyVariationalDistribution\n",
    "from gpytorch.variational import VariationalStrategy\n",
    "\n",
    "\n",
    "class SVGPRegressionModel(AbstractVariationalGP):\n",
    "    def __init__(self, inducing_points):\n",
    "        variational_distribution = CholeskyVariationalDistribution(inducing_points.size(-2), batch_size=2)\n",
    "        variational_strategy = VariationalStrategy(self,\n",
    "                                                   inducing_points,\n",
    "                                                   variational_distribution,\n",
    "                                                   learn_inducing_locations=True)\n",
    "        super(SVGPRegressionModel, self).__init__(variational_strategy)\n",
    "        self.mean_module = gpytorch.means.ConstantMean()\n",
    "        self.covar_module = gpytorch.kernels.ScaleKernel(gpytorch.kernels.RBFKernel())\n",
    "        \n",
    "    def forward(self,x):\n",
    "        mean_x = self.mean_module(x)\n",
    "        covar_x = self.covar_module(x)\n",
    "        latent_pred = gpytorch.distributions.MultivariateNormal(mean_x, covar_x)\n",
    "        return latent_pred\n",
    "\n",
    "\n",
    "# We'll initialize the inducing points to evenly span the space of train_x\n",
    "inducing_points = torch.linspace(0, 1, 25).unsqueeze(-1).repeat(2, 1, 1)\n",
    "model = SVGPRegressionModel(inducing_points)\n",
    "likelihood = gpytorch.likelihoods.GaussianLikelihood()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Iter 1 - Loss: 769.582 [-769.566, 0.016, 0.000]\n",
      "Iter 51 - Loss: 382.680 [-380.848, 1.832, 0.000]\n",
      "Iter 101 - Loss: 205.268 [-204.254, 1.014, 0.000]\n",
      "Iter 151 - Loss: 66.004 [-65.378, 0.626, 0.000]\n",
      "CPU times: user 22 s, sys: 22.5 s, total: 44.5 s\n",
      "Wall time: 6.38 s\n"
     ]
    }
   ],
   "source": [
    "from gpytorch.mlls.variational_elbo import VariationalELBO\n",
    "\n",
    "# Find optimal model hyperparameters\n",
    "model.train()\n",
    "likelihood.train()\n",
    "\n",
    "# Use the adam optimizer\n",
    "optimizer = torch.optim.Adam([\n",
    "    {'params': model.parameters()},\n",
    "    {'params': likelihood.parameters()}\n",
    "], lr=0.01)\n",
    "\n",
    "# \"Loss\" for GPs - the marginal log likelihood\n",
    "# n_data refers to the amount of training data\n",
    "mll = VariationalELBO(likelihood, model, train_y.size(-1), combine_terms=False)\n",
    "\n",
    "def train():\n",
    "    num_iter = 200\n",
    "    for i in range(num_iter):\n",
    "        optimizer.zero_grad()\n",
    "        output = model(train_x)\n",
    "        # Calc loss and backprop gradients\n",
    "        log_lik, kl_div, log_prior = mll(output, train_y)\n",
    "        loss = -(log_lik - kl_div + log_prior)\n",
    "        loss = loss.sum()\n",
    "        loss.backward()\n",
    "        if i % 50 == 0:\n",
    "            print('Iter %d - Loss: %.3f [%.3f, %.3f, %.3f]' % (i + 1, loss.item(), log_lik.sum().item(), kl_div.sum().item(), log_prior.sum().item()))\n",
    "        optimizer.step()\n",
    "        \n",
    "# Get clock time\n",
    "%time train()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0.5, 1.0, 'Observed Values (Likelihood)')"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 576x576 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Set into eval mode\n",
    "model.eval()\n",
    "likelihood.eval()\n",
    "\n",
    "# Initialize plots\n",
    "f, (y1_ax, y2_ax) = plt.subplots(2, 1, figsize=(8, 8))\n",
    "# Test points every 0.02 in [0,1]\n",
    "\n",
    "# Make predictions\n",
    "with torch.no_grad():\n",
    "    test_x = torch.linspace(0, 1, 51).view(1, -1, 1).repeat(2, 1, 1)\n",
    "    observed_pred = likelihood(model(test_x))\n",
    "    # Get mean\n",
    "    mean = observed_pred.mean\n",
    "    # Get lower and upper confidence bounds\n",
    "    lower, upper = observed_pred.confidence_region()\n",
    "\n",
    "\n",
    "# Plot training data as black stars\n",
    "y1_ax.plot(train_x[0].detach().numpy(), train_y[0].detach().numpy(), 'k*')\n",
    "# Predictive mean as blue line\n",
    "y1_ax.plot(test_x[0].squeeze().numpy(), mean[0, :].numpy(), 'b')\n",
    "# Shade in confidence \n",
    "y1_ax.fill_between(test_x[0].squeeze().numpy(), lower[0, :].squeeze().numpy(), upper[0, :].squeeze().numpy(), alpha=0.5)\n",
    "y1_ax.set_ylim([-3, 3])\n",
    "y1_ax.legend(['Observed Data', 'Mean', 'Confidence'])\n",
    "y1_ax.set_title('Observed Values (Likelihood)')\n",
    "\n",
    "y2_ax.plot(train_x[1].detach().numpy(), train_y[1].detach().numpy(), 'k*')\n",
    "y2_ax.plot(test_x[1].squeeze().numpy(), mean[1, :].numpy(), 'b')\n",
    "y2_ax.fill_between(test_x[1].squeeze().numpy(), lower[1, :].squeeze().numpy(), upper[1, :].squeeze().numpy(), alpha=0.5)\n",
    "y2_ax.set_ylim([-3, 3])\n",
    "y2_ax.legend(['Observed Data', 'Mean', 'Confidence'])\n",
    "y2_ax.set_title('Observed Values (Likelihood)')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "anaconda-cloud": {},
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.0"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
